Data processor for assembling transport data packets

ABSTRACT

In a digital television signal processing system, a special codeword, a Packet Alignment Flag (PAF (14), is inserted into an MPEG codeword bitstream to signify the presence of a Group of Pictures (GOP). The PAF immediately precedes a Picture Start codeword for an &#34;I&#34; frame, which initiates a GOP. A data packet (12) under construction when a PAF (14) appears is terminated since a GOP is intended to begin at a packet boundary. Such termination may result in an abbreviated packet of less than a prescribed number of codewords needed to complete a data packet. The last word of each packet is designated as such to facilitate the subsequent combining of data packets (12) with respective headers (18). An incomplete data packet is filled with null (zeroed bits) words to make up a complete data packet with a prescribed number of words.

FIELD OF THE INVENTION

This invention is related to the field of digital signal processing, andmore particularly to method and apparatus for processing a datastreamincluding transport packets conveying coded MPEG-like data in a highdefinition television system, for example.

BACKGROUND OF THE INVENTION

U.S. Pat. 5,168,356-Acampora et al. describes a system for processing ahigh definition television (HDTV) signal subjected to MPEG-like variablelength coding. MPEG is a standardized coding format being established bythe International Organization for Standardization. The standard isdescribed in the document "International Organization forStandardization," ISO/IEC DIS 11172, Coding for Moving Pictures andAssociated Audio for Digital Storage Media, Rev. Nov. 23, 1991 whichdocument is incorporated herein by reference for description of thegeneral code format. In the Acampora et al. system, codewords areprioritized to reflect high priority and low priority information in adatastream. The codeword datastream is passed to a transport processorwhich packs the codeword data into transport cells each including headerand packed data payload sections, and which provides output highpriority and low priority datastreams.

A major function of the transport processor is to pack variable lengthcodeword data, issued by a preceding priority processor, into packeddata words. An accumulation of packed words, called a data packet, isprefaced with a transport header.

The transport packet format enhances resynchronization and signalrecovery at a receiver, eg., after a disruption due to a transmissionchannel disturbance, by providing header data from which a receiver candetermine re-entry points into the data stream on the occurrence of aloss or corruption of transmitted data. Synchronization of data at anMPEG decoder also is facilitated by a Group of Pictures (GOP) beginningat a packet boundary. As will be seen, a GOP is a series of one or morepictures, or frames, intended to assist random access into a coded videobitstream sequence. Resynchronization is also facilitated by respondingto an intracoded I-frame picture start codeword, and by placing thepicture start codeword at a packet boundary, e.g., in a system accordingto the MPEG standard.

SUMMARY OF THE INVENTION

In accordance with the principles of the present invention, in a systemconveying variable length codewords (e.g., MPEG codewords) in datapackets, incomplete data packets having less than a prescribed number ofwords are packed with no-operation "zero words" to produce a fixedlength packet, and to define an inter-packet boundary at which aprescribed codeword may appear.

In a disclosed preferred embodiment, a special codeword, a PacketAlignment Flag (PAF), is inserted into an MPEG datastream to signify thebeginning of a Group of Pictures (GOP). The PAF immediately precedes aPicture Start codeword for an intracoded "I" frame, which initiates aGOP. The PAF indicates the imminent appearance of a Picture Startcodeword, and encompasses one clock cycle during which certain"housekeeping" functions are performed before the Picture Start codewordappears at the beginning of the next packet. These housekeepingfunctions include, for example, resetting accumulators, checking headerstatus, and generating a Last Word Indicator for the data packet underconstruction when the PAF appeared. When the PAF appears, a data packetunder construction is terminated, since a GOP is intended to begin at apacket boundary. Such termination may result in an abbreviated packetcontaining less than a prescribed number of packed words. Theabbreviated data packet is filled with null (zeroed bits) words to makeup a complete data packet with a prescribed number of words, and todefine an inter-packet boundary at which a picture start codeword mayappear. Thirty 32-bit fixed length words form a data packet, which isprefaced by a 32-bit header.

BRIEF DESCRIPTION OF THE DRAWING IN THE DRAWINGS:

FIG. 1 is a block diagram of a portion of a video signal encoderincluding data word controller, data packer and data/header combinerapparatus according to the present invention.

FIGS. 2A, 2B and 2C show details of a word controller and data packer ofFIG. 1.

FIG. 3 is a truth table associated with the operation of a word statuscontroller shown in FIG. 2A.

FIG. 4 shows details of a packed data assembler network.

FIGS. 5-16 depict examples of last word generation.

FIG. 17 shows details of a data and header combiner unit shown in FIG.1.

FIG. 18 is a state diagram associated with the operation of a statecontroller shown in FIG. 17.

FIG. 19 is a block diagram of an HDTV encoding system includingapparatus according to the present invention.

FIGS. 20A and 20B are pictorial representations of sequences of imagefields/frames of encoded video signals.

FIG. 21 is a pictorial representation of datablock generation developedby encoding/compression apparatus in the system of FIG. 19.

FIG. 22 is a generalized pictorial representation of the data formatprovided by the encoding/compression apparatus in the system of FIG. 19.

DETAILED DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of a data packer 12 and a packed data wordcontroller 10 of a transport processor. As mentioned previously, a majorfunction of a transport processor is to pack variable length codeworddata into fixed length (e.g., 32 bit) data words. Thirty accumulateddata words constitute a data packet, which is eventually prefaced by atransport header. Such a transport processor may be employed in a systemfor processing an MPEG-like compressed video signal, as will bediscussed subsequently with regard to FIG. 19. Additional aspects ofMPEG formatting and processing will be discussed in connection withFIGS. 20, 21 and 22.

Controller 10 monitors the accumulation of Length data words relative toa Packet Alignment Flag (PAF) to ascertain the completion of 32-bit datawords, assembled from a stream of variable length codewords, and thecompletion of 960-bit long data packets. The Length data is a six bitparallel word coincident with a variable length codeword whose length itdefines. The binary value of the Length word indicates the number ofbits in the coincident variable length codeword that actually representthe MPEG codeword to be transported. Each variable length codewordappears on a 32 bit wide bus, with a variable number of valid bits (1 to32) representing the MPEG codes.

The PAF is generated by input processor 14 so that the PAF appears onecodeword immediately before an MPEG "I" (intracoded) frame Picture Startcodeword at the beginning of a Group of Pictures. The PAF may begenerated by sensing the presence of the I frame Picture Start codewordby means of a digital comparator. Unit 14 also includes a signal delaynetwork for processing the Picture Start codeword and the PAF so thatthe PAF occurs in the codeword clock cycle immediately before the Iframe Picture Start codeword. The delay network also assures that theoutput signals applied to units 10 and 12 exhibit proper timesynchronism.

Word Addresses are passed to data packer 12, which receives the variablelength codewords for packing, to insure proper concatenation of theinput variable length codewords. Word Control signals are also presentedto packer 12 to account for short words, to mark the last word in apacket, and to insure proper alignment of a sequence of thirty packeddata words with an associated transport header. Controller 10 tracks thecompletion of packets by accumulating the binary values of the Lengthwords. Each value represents the number of valid bits in the associatedcodeword. A packet is complete when 960 bits have been accumulated. Thestarting point, or initialization, of this count is provided by theappearance of the PAF, which causes internal accumulators withincontroller 10 to be reset.

Packer 12 receives the variable length codewords (VLC) via a 32 bitparallel data bus. The valid bits are packed into 32 bit words under thesupervision of signals from controller 10. Concatenation is arranged toaccommodate the eventual MPEG bit serial transmission order. The packeddata from unit 12 is sent at a variable word rate to an input FIFO databuffer 16 of data and header combiner 15. Combiner 15 also receives aData Write Enable signal from packer 12, which enables valid data to bewritten to FIFO data buffer 16 in combiner 15. A data packet is fullyformed when thirty such words have been transmitted, unless a PAF forcesa short packet. A Last Word indicator produced by packer 12 marks thethirtieth word in a normal packet in this example, or the last word in apacket shortened by the appearance of the PAF.

Packed data words are transmitted to data/header combiner 15 wheneverthe packed data words are available. Similarly, transport headers aretransmitted from a header generator 18 to an input FIFO header buffer 17of combiner 15 whenever the headers are available. Information utilizedby header generator 18 to form headers is obtained from input processor14 and word controller 10. A Header Write Enable signal indicates that aheader is available, and enables the headers to be written to FIFO 17.Combiner 15 prefaces each packed data payload with an appropriateheader, and forwards the resulting transport packet, or block, to anoutput rate buffer as will be seen in FIG. 19. Combiner 15 also providesan output Data Ready signal to signify that a packed data word ortransport header is ready to be forwarded. A Header Indicator signaldenotes that clock cycle in which the header is being forwarded. Thissignal acts as a transport packet boundary marker so that subsequentoperations, such as Forward Error Correction (FEC), can be suitablyapplied to the transport cell.

Each header contains information related to the data in the data packetwith which the header is associated. The header information aids dataassembly and synchronization at a receiver, and includes informationsuch as service type (e.g., audio, video, data), frame type, framenumber and slice number, for example. A header of this type and itsprocessing are described in the context of an HDTV digital signalprocessing system employing MPEG signal coding in U.S. Pat.5,168,356--Acampora et al.

A data packet may contain less than thirty packed data words, from 1 to29 words in this example. The PAF, provided by input processor 14,appears immediately before the Picture Start codeword of an intracodedI-frame at the beginning of a GOP, as will be discussed in connectionwith FIGS. 20-22. The Picture Start codeword for an intracoded framealways starts a new packet, and the immediately preceding PAF signifiesthe end of a data packet and the beginning of a new packet. Packetalignment of this Picture Start codeword is instrumental for rapidacquisition of the data stream at a receiver. When the PAF occurs duringthe formation of a fixed length word, an abbreviated data packet isformed. The remaining bits in the packed word under construction arefilled with a number of "zeroed bits" (from 1 to 31) in data packer 12.In addition, the remaining words in the data packet will likewise befilled with "zeroed words" (from 1 to 29) in combiner 15, so that thetransport packet size is maintained. The need for such "zero word fill"is indicated by the appearance of a Last Word indicator before thirtydata words have been transmitted to combiner 15.

The proper identification of the Last Word in a data packet isimportant. The Last Word insures proper registration of a constructedpacket with its associated transport header. The Last Word also accountsfor the filled packet at the MPEG Group Of Pictures boundaries (i.e.,intracoded frame), which is vital for resynchronization at a televisionreceiver/decoder such as after channel changing. Determination of theLast Word is not a trivial matter, and relies on specific knowledge ofpacket status such as when a packet is completed, and if completed,whether or not there is data segmentation into the next packet. Thereare conditions when the Last Word is the word formed in the currentclock interval or the word to be formed in the next clock interval.

Some specific examples of Last Word formation are as follows. In theabsence of a PAF when a packet is complete the last word (the thirtiethword in this example) is the last word and is so marked by a Last WordIndicator. This is an example of a "true" Last Word. A PAF may occur asa packet is completed with no bits segmenting into the next packet,i.e., the word ends exactly on a packet boundary. The last word of acompleted packet is marked as a Last Word because it is so in fact. Thisis another example of a "true" Last Word. A PAF also may occur as apacket is completed with some bits segmenting into the first word of thenext packet. In this case two successive Last Words are formed andmarked accordingly. The last word of the completed packet is marked asLast (a "true" Last Word), and the first word of the next packet ismarked as Last because the PAF forces the packet abbreviation. In thelatter case of an abbreviated packet, the Last Word appearing before 30words have been sent results in "zero word filling" to complete thepacket. Other examples of a Last Word follow. A PAF may occur at a timewhen an incomplete packet is under construction. If an internal word iscompleted with some bits segmenting into the next word, then the partialword becomes the Last Word. A particularly troublesome situation ispresented when an incomplete packet is under construction and aninternal word is completed with no bits segmenting into the next word.The internal word may be conveyed to the data/header combiner beforesubsequent data (i.e., appearance of the PAF) indicates that this wordwas a last word, too late for it to be properly marked as such. In thiscase a zero word called a "pseudo" last word is generated and marked asthe last word. Such a pseudo last word is formed entirely of zero bits,in contrast to, for example, a segmented (incomplete) last word which ispartially padded with zero bits. These and other examples will bediscussed with regard to FIGS. 5-16.

Among the significant aspects of the disclosed system to be describedbelow are the generation of the zero length PAF to signal the imminentbeginning of a GOP, as well as to facilitate generating and marking theLast Word in a data packet, generating a pseudo Last Word when needed,and generating specific signals associated with variations in theoccurrence of a Last Word.

FIG. 2A shows details of controller 10 of FIG. 1. The controllerincludes an accumulator 20 in a feedback arrangement with a modulo 960circuit 22. A buffer register 23 is included in the feedback loop tohold the newly accumulated value at the end of each Length input cycle.Input PAF and Length words are conveyed via an input register 24 tomodulo unit 22 and accumulator 20, respectively. The values of theLength words are successively accumulated by unit 20, and the feedbackcombination of accumulator 20 and modulo 960 unit 22 sets the length ofa packet at 960 bits. The accumulator output from register 23 representsthe bit position within a packet and is conveyed to a packet statuscontroller 25.

Packet status controller 25 also receives a PAF from input bufferregister 24, and issues output signals required to create the writinginstructions in word status controller 26. A Packet Complete outputsignal is issued to word status controller 26 when the accumulator bitcount is equal to or greater than 960. An output Remnant signal isissued by controller 25 when the accumulator bit count is not on a wordboundary (i.e., a bit count not equal to an integer multiple of 32). ATrue Zero output signal is issued when the accumulator bit count iszero. This signal is significant in determining the correct formation ofthe last word only when a PAF is present. A logic circuit for generatingthese signals is shown in FIG. 2B, discussed below.

Accumulator 20 idles, and holds the last bit count value, when zerovalue Length words are received indicating the presence of zero lengthnull codewords, i.e., no-operation (NO-OP) codewords. One exception tothis rule is that a PAF will always force the accumulator value to zeroregardless of the bit count. Another exception occurs when a packet iscompleted exactly on a packet boundary (i.e., the accumulator count is960). In the next clock cycle, the accumulator count will be correctedto the binary value of the next Length word via modulo 960 unit 22. Apacket is complete when the accumulator count is equal to or greaterthan 960.

In FIG. 2B, the 10 bit accumulator outputs, representing the accumulatedlengths, are designated as I0 to I9. A packet is completed if theaccumulated lengths of the packed codewords is equal to or greater than960. This condition is indicated when the four MSB bits of theaccumulator, I6 to I9, are in a logic 1 state, as applied to an AND gate30. True Zero is indicated when all ten accumulator bits are in a logicstate 0, as applied to an OR gate 31. A "no remnant" condition isindicated when the five LSB accumulator bits, I0 to I4, are in a logicstate 0, as applied to an OR gate 32. The data packer Word Address isformed in response to the six LSB accumulator bits, I0 to I5. AND gatearray 34 forces the Word Address to a logic state 0 (Word Address reset)when the Packet Alignment Flag (PAF) is encountered.

FIG. 2C shows details of data packer 12 of FIG. 1. Variable lengthcodewords are presented to a data shifter 35. The shifter can be abarrel shifter such as Texas Instrument type 74AS8838. To appropriatelyposition the valid bits of the variable length codewords forconcatenation, an LSB subset of the length accumulator output emanatesfrom the packet status controller 25 (see FIGS. 2A and 2B) and ispresented to the data shifter as the Word Address. When a 32 bit wordhas been formed from the concatenation of the variable length codewords,the packed word is transferred to a holding register 36. Theavailability of the packed data word is flagged by a Word Ready signalissued by register 36, so that the word can be transferred to a dataassembly network 37. Data assembler 37 uses control signals WEN1, WEN2and WZERO from packed word controller 10 (FIG. 1) to issue the packeddata word with its Data Write Enable and Last Word flag to a FIFO buffercontained within data and header combiner 15 of FIG. 1.

The insertion of the next transport headers into the combined datastream follows the transmission of the last word in a packet such thatthe header for the next packet is inserted after the last word of thecurrent packet. The Accumulator Output (FIG. 2A) is used by a HeaderController to indicate the position of certain codewords in the packetso that these positions can be described in entry point fields withinthe header. The creation of Last Word indicators and flags enabling datawords to be written to a FIFO buffer is facilitated by logic arraysassociated with word status controller 26 and data assembly network 37.Table 1 below shows the action states for creating the last word inresponse to logic array inputs PAF (Packet Alignment Flag), PC (PacketComplete), TZ (True Zero) and REM (Remnant, the word segmentationindicator). The formation of the output signals from data assemblynetwork 37 is facilitated by output signals from controller 26, suppliedvia buffer register 28. These signals include a write enable signal WENI which signifies a last word appearing in the next clock cycle, awrite enable signal W EN2 signifying a last word appearing in thecurrent clock cycle, and a write zero signal W ZERO which creates apseudo Last Word. This pseudo Last Word occurs when a PAF coincides withthe packet formation residing at an internal codeword boundary of anincomplete packet.

                  TABLE 1                                                         ______________________________________                                        WORD STATUS CONTROLLER STATES                                                 PAF  PC     TZ     REM   ACTION TAKEN                                         ______________________________________                                        YES  YES    N/A    YES   Flag current word as Last Word, then                                          flag word on next clock also (CASE 1)                YES  YES    N/A    NO    Flag current word as Last (CASE 2)                   YES  NO     N/A    YES   Flag word on next clock as Last (CASE 3)             YES  NO     NO     NO    Form a pseudo Zero Word on next clock,                                        and flag it as Last Word (CASE 4)                    NO   YES    N/A    N/A   Flag current word as Last (CASE 5)                   YES  NO     YES    NO    None (CASE 6a)                                       NO   NO     N/Z    NA    None (CASE 6b)                                       ______________________________________                                         NOTE 1: Last Word flag on current words are signaled by Write Enable 2.       NOTE 2: Last Word flag on words in the next clock are signaled by Write       Enable 1.                                                                     NOTE 3: Formation of pseudo word is signaled by Write Zero and flagged by     Write Enable 1.                                                          

A truth table for generating WENI, WEN2 and WZERO is shown in FIG. 3 forvarious examples of operating conditions (cases 1-6 of Table 1), as willbe further discussed in connection with FIGS. 5-16. The algorithm forTable 1 is given in Appendix A. The output signals from controller 26are supplied to an output buffer register 28 before being provided asoutput word control signals to a data assembler network shown in FIG. 4.

The data assembler network of FIG. 4 comprises an output network of datapacker 12 in FIG. 1. The data assembler comprises AND logic gates 42 and44, an OR logic gate 46, and D-type flip-flops 43 and 45 arranged asshown. Packed 32 bit wide Data Words are passed to a data FIFO via ANDlogic gates 42, and a Word Ready signal from preceding packer circuitsis passed via AND logic gate 44, and becomes the Data Write Enablesignal for data FIFO 16 in FIG. 1. Data write control signals W EN1, WEN2 and W ZERO from the packed word status controller (FIG. 2A) areapplied to flip-flops 43 and 45 and logic gate 46 as shown. W EN2indicates a Last Word flag associated with a current word, and W ENIindicates a Last Word flag associated with a word in the next clockcycle. The W ZERO control indicates the formation of a pseudo Last Word(case 4 in Table 1) which is flagged as a last word by W EN1. In thiscase an all-zero word, referred to as the pseudo last word, is insertedinto the Packed Data word stream, and is written to data FIFO 16. TheWord Ready input signal to assembler gate 44 is provided by a holdingregister 36 (FIG. 2C) to signify the availability of a packed 32-bitword.

The following discussion refers to the examples of last word generationillustrated by FIGS. 5-16. Some of these examples show the effect ofzero length NO-OP words coincident with, following and preceding thePAF.

FIGS. 5 and 6 illustrate variations of Case 5 in Table 1. In FIG. 5, apacket is completed with segmentation into the next packet (i.e.,accumulator bit value greater than 960). In FIG. 6, a packet iscompleted exactly on a packet boundary (i.e., accumulator value equal to960), with no segmentation or remnant into the next packet. In bothcases, a Last Word flag occurs at the Packet Complete time. Thisoccurrence is independent of True Zero and Remnant indications because aPAF is not present. Otherwise, True Zero and Remnant indications wouldhave to be considered in the presence of a PAF.

FIGS. 7 and 8 illustrate Case 2 of Table 1. In FIG. 7 a PAF occursimmediately after a packet is completed, with no segmentation, followedby a 32-bit Picture Start codeword. FIG. 8 is similar except that threeintervening zero length no-operation (NO-OP) code words precede thePicture Start codeword. In both FIGURES, a PAF coincides with a PacketComplete signal, and the packet ends without remnant segmentation intothe next packet. FIG. 7 shows the more typical case where a 32 bitlength Picture Start codeword follows immediately. FIG. 8 indicates thatintervening NO-OP words are tolerated.

FIG. 9 pertains to Case 6a of Table 1, where a PAF does not coincidewith a Packet Complete signal. The PAF occurs after a packet iscompleted, with no segmentation and after NO-OP words, followed by aPicture Start codeword. In this case a Last Word indication isassociated with the Packet Complete signal, but there is no Last Wordindication associated with the PAF because a True Zero indication isinvolved in this case, due to the accumulator idling at zero.

FIGS. 10 and 11 illustrate Case 1 of Table 1. In FIG. 10 a PAF occursimmediately after a packet is completed, with segmentation, followed bya Picture Start codeword. FIG. 11 is similar to FIG. 10 except thatintervening NO-OP words precede the Picture Start codeword. Two LastWord indicators are required because of the segmentation remnant. OneLast Word indicator occurs at the Packet Complete interval, and theother occurs one clock interval after the PAF because of thesegmentation.

FIGS. 12, 13 and 14 illustrate Case 3 of Table 1. In these examples aPAF occurs sometime during the packet formation, but not on a wordboundary (i.e., there is segmentation into the next word), and notcoincident with a Packet Complete indication. The Last Word signal thennormally occurs at the next clock interval after the PAF as a result ofthe partially started word (due to segmentation). In FIG. 12, the PAFoccurs after a packet is completed, with segmentation and after someNO-OP words, followed by a Picture Start codeword. In FIG. 13, a PAFoccurs immediately as a word is completed, with segmentation, followedby a Picture Start codeword. In FIG. 14 a PAF occurs after a word iscompleted, and after several codewords have caused segmentation.

FIGS. 15 and 16 illustrate Case 4 of Table 1, concerning the need tocreate a particular type of last word, the pseudo last word. This caseinvolves a PAF occurring immediately after (FIG. 15) or some time after(FIG. 16) a word is completed without segmentation, i.e., directly on aword boundary multiple of 32. The premise in this case is that thecompleted word has been issued in advance of the knowledge (provided bythe subsequent PAF) that it was the last word. An all-zero pseudo lastword is formed and issued. This is tolerable because MPEG allows anynumber of leading zeros before a start codeword, and the Picture Startcodeword is guaranteed to be next by the occurrence of the PAF.Moreover, in these cases, the balance of the packet would be filled withzeroed bit (null) words by the data/header combiner. Since one zero wordhas been issued and pseudo-marked as last, the combiner will issue oneless word in this case. In FIG. 15, a PAF occurs immediately as a wordis completed (without segmentation), followed by a Picture Startcodeword. In FIG. 16 a word is completed (without segmentation) andfollowed by intervening NO-OP words. Afterwards a PAF occurs, followedby a Picture Start codeword.

FIG. 17 shows additional details of Data/Header combiner (FIG. 1).Header components are written into a header FIFO 70, in response to aHeader Write Enable signal, whenever the headers are produced by headergenerator 18. Similarly, packed data words are written into a data FIFO72, in response to a Data Write Enable signal, whenever such words areproduced by data packer 12. A Last Word indicator, produced in the datapacking process, accompanies the last word in a packet whether or notsuch word is the thirtieth word. Header and data outputs of units 70 and72 are multiplexed onto a common bus by means of multiplexer 76, andapplied to an output register 78. Register 78 provides a Data Readysignal, Packet Data and Headers, and a Header Indicator to rate buffers713 and 714 as shown in FIG. 19. Multiplexer 76 is capable of issuingzero words on command, in response to an Issue Zero signal from FIFOstate controller 74.

Both FIFO units 70 and 72, multiplexer 76 and output register 78 aredirected by controller 74, which is a state machine. After a power-on orsimilar restart, controller 74 waits for a header to be available. Anavailable header is presented to the output bus of multiplexer 76, alongwith a Data Ready indicator and a Header Indicator. Controller 74 willthen serve data FIFO 72, extracting data whenever it is available, untila Last Word indicator appears. Each data transmitted is accompanied by aData Ready indicator which is conveyed to output register 78. If 30 datawords have been serviced after the Last Word indicator appears,controller 74 will then re-examine header FIFO 70 for availableinformation. If less than 30 data words have been serviced, controller74 instructs multiplexer 76, by means of the Issue Zero command, toissue zero words for the balance of the packet. All such zero words areaccompanied by a Data Ready indicator. Whenever there is no header ordata to transmit, controller 74 instructs multiplexer 76 to issue zerowords without any Data Ready indicator for the duration that data isunavailable. A flow chart (state diagram) depicting the state machinedriven operation of combiner 15, as described above, is shown in FIG.18. The Data Ready indicator and the Header Indicator are conveyedthrough output register 78 to rate buffers 713 and 714 in FIG. 19. Theseindicators signify to the rate buffers that there is data and headerinformation on the bus, and maintain header/data registration tofacilitate forward error correction (FEC) coding and data interleavingsubsequent to the rate buffers. In this system (FIG. 19) the FEC andinterleaving processes require that the headers be conveyed first, i.e.,a header will commence transmission to the rate buffer before the datapacket described by the header. The Empty Flag signals conveyed fromheader FIFO 70 and data FIFO 72 respectively indicate that no headers ordata words are present, whereby state machine controller 74 idles. Thiscondition is illustrated in the FIG. 18 diagram for the "No Header" and"No Word" conditions of State 0 and State 1. The Header/Data Selectsignal from controller 74 instructs multiplexer 76 to switch either theHeader Output from unit 70 or the Data Output from unit 72 to the signalbus to the input of output register 78, when an associated Read Enablesignal is conveyed to Header FIFO 70 or to Data FIFO 72, respectively.

Output buffer 78, to which zero words are added to an incomplete,abbreviated packet to produce a desired 30-word data packet, isconsiderably larger than preceding header buffer 70 and data buffer 72.These buffers advantageously continue to receive and process datawithout interruption. Such uninterrupted operation greatly simplifiestiming and synchronizing functions, e.g., by eliminating clockstop/start synchronizing difficulties.

The use of complete packets of predetermined length, advantageouslyfacilitated by means of adding null words as needed as described,facilitates searching and synchronizing in an arbitrary data conditionsuch as is found in a variable length codeword system. A start codeword,particularly an I-frame start codeword, is a specific re-synchronizingpoint in an MPEG-compatible data stream. The start codeword appears at apacket boundary, the development of which is advantageously facilitatedin the disclosed system by the use of zeroed-bit null words to completea truncated data packet and define the packet boundary. The MPEGstandard tolerates any number of zeroed words before a start codeword,and a receiver/decoder ignores the zeroed-bit null words. In thisexample, output buffer 78 is large and time resilient, and is thereforea convenient vehicle for performing the null word packing operation. Inthis regard it is noted that very little time is available (eg., oneclock cycle) for null word packing between the appearance of a PacketAlignment Flag and a Picture Start codeword at a packet boundary.

FIG. 19 illustrates an exemplary HDTV encoding system which may employapparatus according to the invention in the transport processor section.FIG. 19 shows the system processing a single video input signal, but itis to be understood that luminance and chrominance components areprocessed separately, and that luminance motion vectors are used forgenerating compressed chrominance components. The compressed luminanceand chrominance components are interleaved to form macroblocks beforecodeword priority parsing. Additional information concerning the systemof FIG. 19 is found in U.S. Pat. 5,168,356--Acampora et al.

A sequence of image fields/frames shown in FIG. 20A is applied tocircuitry 705 which reorders the fields/frames according to FIG. 20B.The reordered sequence is applied to a compressor 710 which generates acompressed sequence of frames that are coded according to an MPEG-likeformat. This format is hierarchical and is illustrated in abbreviatedform in FIG. 22. The MPEG hierarchical format includes a plurality oflayers each with respective header information. Nominally each headerincludes a start code, data related to the respective layer andprovision for adding header extensions.

When referring to the MPEG-like signal produced by the system, what ismeant is that (a) successive picture fields/frames of video signals areencoded according to an I, P, B coding sequence, and (b) coded data atthe picture level is encoded in MPEG-like slices or group of blocks,where the number of slices per field/frame may differ and the number ofmacro blocks per slice may differ. An I coded frame is one which isintraframe compressed such that only I frame compressed data is requiredto reproduce an image. P coded frames are coded according to a forwardmotion compensated predictive method, where the P frame coded data isgenerated from the current frame and an I or P frame occurring beforethe current frame. B coded frames are coded according to abidirectionally motion compensated predictive method. The B coded framedata is generated from the current frame and from I and P framesoccurring both before and after the current frame.

The coded output signal of the present system is segmented into groupsof fields/frames, or groups of pictures (GOP) illustrated by the row ofboxes L2 (FIG. 22). Each GOP (L2) includes a header followed by segmentsof picture data. The GOP header includes data related to the horizontaland vertical picture size, the aspect ratio, the field/frame rate, thebit rate, etc.

The picture data (L3) corresponding to respective picture fields/framesincludes a picture header followed by slice data (L4). The pictureheader includes a field/frame number and a picture code type. Each slice(L4) includes a slice header followed by a plurality of blocks of dataMBi. The slice header includes a group number and a quantizationparameter.

Each block MBi (L5) represents a macroblock and includes a headerfollowed by motion vectors and coded coefficients. The MBi headersinclude a macroblock address, a macroblock type and a quantizationparameter. The coded coefficients are illustrated in layer L6. Eachmacroblock includes 6 blocks, including four luminance blocks, one Uchrominance block and one V chrominance block (see FIG. 21). A blockrepresents a matrix of pixels, e.g., 8×8, over which a discrete cosinetransform (DCT) is performed. The four luminance blocks are a 2×2 matrixof contiguous luminance blocks representing, e.g., a 16×16 pixel matrix.The chrominance (U and V) blocks represent the same total area as thefour luminance blocks. That is, before compression the chrominancesignal is subsampled by a factor of two horizontally and verticallyrelative to luminance. A slice of data corresponds to data representinga rectangular portion of an image corresponding to an area representedby a contiguous group of macroblocks. A frame may include a raster scanof 360 slices, 60 slices vertically by 6 slices horizontally.

The block coefficients are provided one block at a time by the DCT. TheDC coefficient occurs first, followed by respective DCT AC coefficientsin the order of their relative importance. An end-of-block code EOB isappended at the end of each successively occurring block of data.

In FIG. 19, data from compressor 710 is processed by a prioritizer 711before being provided to a transport processor 712 which segments thedata into high priority (HP) and standard priority (SP) components.These components are coupled via rate buffers 713 and 714 to respectiveforward error coding units 715 and 716. The rate buffers temporarilystore the packed data and headers for subsequent extraction by the FECerror coding networks. A rate controller 718 cooperates with buffers713, 714 to adjust the average data rate provided by compressor 710.Thereafter the signals are coupled to a transmission modem 717 where theHP and SP data quadrature amplitude modulate respective carriers withina standard 6 MHz NTSC television channel.

    ______________________________________                                        APPENDIX A. LAST WORD GENERATION ALGORITHM                                    ______________________________________                                        do positive.sub.-- clock.sub.-- edge = 1,∞                              if Packet.sub.-- Alignment.sub.-- Flag                                        if packet.sub.-- complete                                                     if remnant                                                                    flag word ready coincident with                                               packet.sub.-- complete as last then flag short word ready on                  next clock as last                                                            else                                                                          flag word ready coincident with packet.sub.--                                 complete as last                                                              else                                                                          if remnant                                                                    flag word ready on next clock as last                                         else                                                                          if not true.sub.-- zero                                                       create a zero word on the next clock                                          and flag this pseudo word as last                                             else continue (i.e., do nothing)                                              else                                                                          if packet.sub.-- complete                                                     flag word ready coincident with                                               packet.sub.-- complete as last                                                enddo                                                                         ______________________________________                                    

We claim:
 1. Apparatus for processing an image representative variablelength codeword datastream comprising:means (12) responsive to saidvariable length codeword datastream for producing data packets includingshort data packets containing less than a prescribed number of words;data processing means (15) for conveying said data packets to an output;and means (76, FIG. 17), included in said data processing means, forfilling said short data packets with no-operation null words as neededto produce fixed length data packets having said prescribed number ofwords, and to define an inter-packet boundary at which a prescribedcodeword may appear.
 2. Apparatus according to claim 1, whereinsaid dataprocessing means includes data selection means (76) for conveying asequence of data packets and packet headers to said output, and forfilling said short packets with said null words.
 3. Apparatus accordingto claim 1, wherein said data processing means includesan input headerbuffer (70) for receiving headers containing information relating tocontents of an associated data packet; an input data buffer (72) forreceiving said data packets; and an output buffer (78) for receiving acontrolled sequence of headers and data packets from said header bufferand said data buffer respectively; wherein said data processing meansincluding said data buffer, said header buffer and said output bufferexhibit uninterupted operation with respect to receiving and processingsaid headers and data packets.
 4. Apparatus according to claim 3,whereinsaid null words are provided to said short data packetssubsequent to said data and header buffers.
 5. Apparatus according toclaim 1, whereinsaid codewords include a Picture Start codewordassociated with Group of Picture data and appearing at an inter-packetboundary.
 6. Apparatus according to claim 5, whereinsaid datastreamcomprises MPEG codewords including said Picture Start codeword. 7.Apparatus according to claim 5, wherein Picture Start codeword isassociated with intraframe coded I-frame image data.